﻿using System;
using Voluntariar.Sistema.DAO;
using Voluntariar.Sistema.Entidades;

namespace Voluntariar.WEB
{
    public partial class CadastroUsuario : Voluntariar.WEB.Util.PaginaBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {

            }
            catch (Exception ex)
            {
                TratarErro(ex);
            }
        }

        protected void lnbCadastrar_Click(object sender, EventArgs e)
        {
            try
            {
                string sImageFileExtension;
                Usuarios users = new Usuarios();

                if (this.UploadUserPhoto.HasFile)
                {

                    if (ValidaCadastro())
                    {
                        string myMap = MapPath("~/").ToLower();
                        Random r = new Random();
                        int next = r.Next();
                        string ImageName = UploadUserPhoto.PostedFile.FileName;

                        sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();
                        if (sImageFileExtension == ".gif" || sImageFileExtension == ".png" || sImageFileExtension == ".jpg" || sImageFileExtension == ".jpeg" || sImageFileExtension == ".bmp")
                        {

                            string ImageSaveURL = myMap + "ImagemUsuarios/" + next + sImageFileExtension;
                            try
                            {
                                UploadUserPhoto.PostedFile.SaveAs(ImageSaveURL);
                                users.cpf = txtCPF.Text;
                                users.nome = txtNome.Text;
                                users.email = txtLogin.Text;
                                users.senha = Util.Criptografia.Cifrar(txtSenha.Text);
                                users.descricao = txtDescricao.Text;
                                users.imagem = next + sImageFileExtension;
                                users.datacadastro = DateTime.Now;
                                users.quantidadeViews = 1;
                                users = UsuarioDAO.Salvar(users);

                                Util.Email Email = new Util.Email();
                                string aux = string.Empty;
                                aux = txtLogin.Text.Substring((txtLogin.Text.IndexOf("@") + 1), (txtLogin.Text.IndexOf(".")) - (txtLogin.Text.IndexOf("@") + 1));
                                if (aux.Equals("gmail"))
                                {
                                    string Mensagem = "Olá , <b>" + users.nome + "</b>" +
                                       " <br/>Seu cadastro foi recebido pela nossa equipe e ja esta disponivel para uso ." +
                                       " <br/>Entre pelo link logo a baixo , ja estara disponivel para participar da nossa rede de Voluntários ." +
                                       " <br/>Em nome de todos da equipe ," +
                                       " <br/> <br/>Seja Bem-Vindo(a) ." +
                                       "            <a href=\' http://localhost:1419/DetalhesUser.aspx?xsdHsha=" + Util.Criptografia.Cifrar(users.ID.ToString()) + "\'>Clique Aqui</a>";

                                    if (!Email.EnviarGmail("Seja Bem vindo ao Voluntariar", Mensagem, txtLogin.Text))
                                    {
                                        Util.Mensagem.MensagemTemporizada("Problema a copia para meu e-mail.");
                                        return;
                                    }
                                }
                                else if (aux.Equals("ici"))
                                {
                                    string Mensagem = "Olá , <b>" + users.nome + "</b>" +
                                        " <br/>Seu cadastro foi recebido pela nossa equipe e ja esta disponivel para uso ." +
                                        " <br/>Entre pelo link logo a baixo , ja estara disponivel para participar da nossa rede de Voluntários ." +
                                        " <br/>Em nome de todos da equipe ," +
                                        " <br/> <br/>Seja Bem-Vindo(a) ." +
                                        "            <a href=\' http://localhost:1419/DetalhesUser.aspx?xsdHsha=" + Util.Criptografia.Cifrar(users.ID.ToString()) + "\'>Clique Aqui</a>";

                                    if (!Email.Enviarici("Seja Bem vindo ao Voluntariar", Mensagem, txtLogin.Text, true))
                                    {
                                        Util.Mensagem.MensagemTemporizada("Problema a copia para meu e-mail.");
                                        return;
                                    }
                                }
                                Response.Redirect("/ConfirmacaoEmailCadastro.aspx", false);

                            }
                            catch (Exception ex)
                            {
                                TratarErro(ex);
                            }

                        }
                        else
                        {
                            Util.Mensagem.MensagemTemporizada("Extensão de arquivo inválida !");
                        }
                    }
                }
                else
                {

                    if (ValidaCadastro())
                    {
                        sImageFileExtension = "NoImage";
                        users.cpf = txtCPF.Text;
                        users.nome = txtNome.Text;
                        users.email = txtLogin.Text;
                        users.senha = Util.Criptografia.Cifrar(txtSenha.Text);
                        users.descricao = txtDescricao.Text;
                        users.imagem = sImageFileExtension;
                        users.datacadastro = DateTime.Now;
                        users.quantidadeViews = 1;
                        users = UsuarioDAO.Salvar(users);

                        Util.Email Email = new Util.Email();
                        string aux = string.Empty;
                        aux = txtLogin.Text.Substring((txtLogin.Text.IndexOf("@") + 1), (txtLogin.Text.IndexOf(".")) - (txtLogin.Text.IndexOf("@") + 1));
                        if (aux.Equals("gmail"))
                        {
                            string Mensagem = "Olá , <b>" + users.nome + "</b>" +
                                         " <br/>Seu cadastro foi recebido pela nossa equipe e ja esta disponivel para uso ." +
                                         " <br/>Entre pelo link logo a baixo , ja estara disponivel para participar da nossa rede de Voluntários ." +
                                         " <br/>Em nome de todos da equipe ," +
                                         " <br/> <br/>Seja Bem-Vindo(a) ." +
                                         "            <a href=\' http://localhost:1419/DetalhesUser.aspx?xsdHsha=" + Util.Criptografia.Cifrar(users.ID.ToString()) + "\'>Clique Aqui</a>";

                            if (!Email.EnviarGmail("Seja Bem vindo ao Voluntariar", Mensagem, txtLogin.Text))
                            {
                                Util.Mensagem.MensagemTemporizada("Problema a copia para meu e-mail.");
                                return;
                            }
                        }
                        else if (aux.Equals("ici"))
                        {
                            string Mensagem = "Olá , <b>" + users.nome + "</b>" +
                                        " <br/>Seu cadastro foi recebido pela nossa equipe e ja esta disponivel para uso ." +
                                        " <br/>Entre pelo link logo a baixo , ja estara disponivel para participar da nossa rede de Voluntários ." +
                                        " <br/>Em nome de todos da equipe ," +
                                        " <br/> <br/>Seja Bem-Vindo(a) ." +
                                        "            <a href=\' http://localhost:1419/DetalhesUser.aspx?xsdHsha=" + Util.Criptografia.Cifrar(users.ID.ToString()) + "\'>Clique Aqui</a>";

                            if (!Email.Enviarici("Seja Bem vindo ao Voluntariar", Mensagem, txtLogin.Text, true))
                            {
                                Util.Mensagem.MensagemTemporizada("Problema a copia para meu e-mail.");
                                return;
                            }
                        }
                        else if (aux.Equals("ici"))
                        {
                            string Mensagem = "Olá , <b>" + users.nome + "</b>" +
                                        " <br/>Seu cadastro foi recebido pela nossa equipe e ja esta disponivel para uso ." +
                                        " <br/>Entre pelo link logo a baixo , ja estara disponivel para participar da nossa rede de Voluntários ." +
                                        " <br/>Em nome de todos da equipe ," +
                                        " <br/> <br/>Seja Bem-Vindo(a) ." +
                                        "            <a href=\' http://localhost:1419/DetalhesUser.aspx?xsdHsha=" + Util.Criptografia.Cifrar(users.ID.ToString()) + "\'>Clique Aqui</a>";

                            if (!Email.Enviaryahoo("Seja Bem vindo ao Voluntariar", Mensagem, txtLogin.Text, true))
                            {
                                Util.Mensagem.MensagemTemporizada("Problema a copia para meu e-mail.");
                                return;
                            }
                        }

                        Response.Redirect("/ConfirmacaoEmailCadastro.aspx", false);

                    }
                }

            }
            catch (Exception ex)
            {
                TratarErro(ex);
            }
        }

        public bool ValidaCadastro()
        {
            try
            {
                Usuarios users = new Usuarios();
                users.cpf = txtCPF.Text;

                if (UsuarioDAO.Pesquisar(users).Count > 0)
                {
                    txtCPF.Text = string.Empty;
                    Util.Mensagem.MensagemTemporizada("CPF ja cadastrado , recupere sua senha ou cadastre um novo CPF !");
                    txtCPF.Focus();
                    return false;
                }
                users = new Usuarios();
                users.email = txtLogin.Text;

                if (UsuarioDAO.Pesquisar(users).Count > 0)
                {
                    txtLogin.Text = string.Empty;
                    Util.Mensagem.MensagemTemporizada("Email ja cadastrado , recupere sua senha ou cadastre um novo email!");
                    txtLogin.Focus();
                    return false;
                }

                if (!txtConfirmaSenha.Text.Equals(txtSenha.Text))
                {
                    txtSenha.Text = string.Empty;
                    txtConfirmaSenha.Text = string.Empty;
                    Util.Mensagem.Alerta("Atenção ! Confirmação de senha deve ser igual ao de senha !");
                    txtSenha.Focus();
                    return false;
                }

                if (!Voluntariar.Sistema.Utils.isCPFValido(txtCPF.Text))
                {
                    txtCPF.Text = string.Empty;
                    Util.Mensagem.MensagemTemporizada("CPF inválido . Digite seu CPF novamente !");
                    txtCPF.Focus();
                    return false;
                }

                return true;
            }
            catch (Exception ex)
            {
                TratarErro(ex);
                return false;
            }
        }
    }
}
